媒体库(MediaLibrary) PRO
MediaLibrary 模块用于访问用户设备中的本地媒体资料库数据, 允许脚本查询歌曲、专辑、歌手与播放列表,并获取对应的封面图。
使用前请注意:
- 用户必须授权访问媒体资料库。
- 查询结果仅包含用户设备资料库中的内容(包括本地同步歌曲、iTunes 同步内容、已下载的 Apple Music 歌曲等)。
- 返回的数据为只读结构,不能直接修改系统资料库。
数据模型
Item
表示单首歌曲(Song)。
字段说明:
title:歌曲名称persistentID:本地资料库唯一标识(用于播放与获取封面)artist:演唱者albumTitle:所属专辑名称albumArtist:专辑艺术家genre:流派composer:作曲者albumTrackNumber:专辑内曲目序号albumTrackCount:专辑总曲目数discNumber:CD 序号discCount:CD 总数playbackDuration:时长(秒)playbackStoreID:Apple Music Store ID(如存在)isCloudItem:是否为云端项目hasProtectedAsset:是否为受 DRM 保护内容
Playlist
表示播放列表。
字段说明:
persistentID:播放列表唯一标识name:播放列表名称trackCount:歌曲数量
Album
表示专辑。
字段说明:
title:专辑名称artist:专辑艺术家persistentID:专辑标识(部分情况下可能为空)trackCount:曲目数量
查询选项
SongQueryOptions
说明:
limit:限制返回条数sortBy:排序字段ascending:是否升序(默认 false)
AlbumQueryOptions
PlaylistQueryOptions
ArtistQueryOptions
SongFilter
用于过滤歌曲。
说明:
- 支持精确匹配过滤
- 可组合多个字段
API 方法
getSongs
查询歌曲列表。
示例:
getSongByPersistentID
根据 persistentID 获取单首歌曲。
示例:
getAlbums
获取专辑列表。
示例:
getAlbumSongs
获取某个专辑下的歌曲。
示例:
说明:
- 通过专辑名称匹配
- 若存在同名专辑,可能返回多个专辑的合并结果
getArtists
获取艺术家列表。
示例:
getArtistSongs
获取某个艺术家的所有歌曲。
示例:
getPlaylists
获取播放列表。
示例:
getPlaylistSongs
获取播放列表中的歌曲。
示例:
getArtwork
获取歌曲封面图。
说明:
- 返回
UIImage size为期望渲染尺寸- 若无封面则返回
null
示例:
使用建议
- 大量查询时应使用
limit控制返回数量。 - 对于播放场景,建议仅保存
persistentID,避免缓存完整对象。 - 获取封面图建议按需加载,不要批量预加载。
- 若需要播放歌曲,请配合
SystemMusicPlayer.setQueueByPersistentIDs使用。
